In the present world, the telephone is a ubiquitous way to communicate. Besides the original telephone configuration now there are cellular phones, satellite phones, and the like. In order to increase throughput of the telephone communication network, vocoders are typically used. A vocoder compresses the voice using some model for a voice producing mechanism. A compressed or encoded voice is transmitted over a communication system and needs to be decompressed or decoded on the other end. The nature of most voice communication applications requires the encoding and decoding of voice to be done in real time, which is usually performed by digital signal processors (DSPs) running a vocoder.
A family of vocoders, such as vocoders for use in connection with G.723, G.726/727, G.729 standards, as well as others, have been designed and standardized for telephone communication in accordance with the International Telecommunications Union (ITU) Recommendations. See, for example, R. Salami, C. Laflamme, B. Besette, and J-P. Adoul, ITU-T G.729Annex A. Reduced Complexity 8 kb/s CS-ACELP Codec for Digital Simultaneous Voice and Data, IEEP Communications Magazine, September 1997, pp. 56-63 which is incorporated by reference herein in its entirety. These vocoders process a continuous stream of digitized audio information by frames, where a frame typically contains 10 to 20 ms of audio samples. See, for example, the reference cited above, as well as, J. Du, G. Warner, E. Vallow, and T. Hollenbach, Using DSP16000 for GSM EFR Speech Coding, IEEE Signal Processing Magazine, March 2000, pp. 16-26 which is incorporated by reference in its entirety. These vocoders employ very sophisticated DSP algorithms involving computation of correlations, filters, polynomial roots and so on. A block diagram of a G.729a encoder 10 is shown in FIG. 1 as exemplary of the complexity and internal links between different parts of a typical prior art vocoder.
The G.729a vocoder is based on the code-excited linear-prediction (CELP) coding model described in the Salami et al. publication cited above. The encoder operates on speech frames of 10 ms corresponding to 80 samples at a sampling rate of 8000 samples per second. For every 10 ms frame, with a look-ahead of 5 ms, the speech signal is analyzed to extract the parameters of the CELP model such as linear-prediction filter coefficients, adaptive and fixed-codebook indices and gains. Then, the parameters, which take up only 80 bits compared to the original voice samples which take up 80*16 bits, are transmitted. At the decoder, these parameters are used to retrieve the excitation and synthesis filter parameters. The original speech is reconstructed by filtering this excitation through the short-term synthesis filter based on a 10th order linear prediction (LP) filter. A long-term, or pitch synthesis filter is implemented using the so-called adaptive-codebook approach. After computing the reconstructed speech, it is further enhanced by a post-filter.
A well known implementation of a G.729a vocoder, for example, takes on average about 50,000 cycles per channel per frame. See for example, S. Berger, Implement a Single Chip, Multichannel VoIP DSP Engine, Electronic Design, May 15, 2000, pp. 101-06. As a result, processing multiple voice channels at the same time, which is usually necessary at communication switches, requires great computational power. The traditional way to meet this requirement are by increasing the DSP clock frequency or the number of DSPs with multiple DSPs operating in parallel, each DSP has to be able to operate independently to handle conditional jumps, data dependency, and the like. As the DSPs do not operate in synchronism, there is a high overhead for multiple clocks, control circuitry and the like. In both cases, increased power, higher manufacturing costs, and the like result.
It will be shown in the present invention that a high performance vocoder implementation can be designed for parallel DSPs such as BOPS® ManArray™ family with many advantages over the typical prior art approaches discussed above. Among its other advantages, the parallelization of vocoders using the BOPS® ManArray™ architecture results in an increase in the number of communication channels per DSP.